package com.jxdinfo.hussar.example.common.schedulingtask.model;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * <p>
 * 用户表
 * </p>
 *
 * @author 乔镔
 * @since 2024-04-15
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("sys_users")
public class SysUsersMes implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 用户编码
     */
    @TableId(value = "USER_ID", type = IdType.ASSIGN_ID)
    private Long USER_ID;

    /**
     * 用户名称
     */
    @TableField("USER_NAME")
    private String USER_NAME;

    /**
     * 密码
     */
    @TableField("PASSWORD")
    private String PASSWORD;

    /**
     * 账户状态 1：激活 2：删除 3：休眠 4：注销
     */
    @TableField("ACCOUNT_STATUS")
    private String ACCOUNT_STATUS;

    /**
     * 安全级别
     */
    @TableField("SECURITY_LEVEL")
    private int SECURITY_LEVEL;

    /**
     *允许创建的最大会话数
     */
    @TableField("MAX_SESSIONS")
    private int MAX_SESSIONS;

    /**
     * 是否系统管理员
     */
    @TableField("IS_SYS")
    private String IS_SYS;

    /**
     * 是否公司级公用账号
     */
    @TableField("IS_CPUBLIC")
    private String IS_CPUBLIC;

    /**
     * 锁定时间
     */
    @TableField("LOCK_TIME")
    private LocalDateTime LOCK_TIME;

    /**
     * 失效时间
     */
    @TableField("EXPIRED_TIME")
    private LocalDateTime EXPIRED_TIME;

    /**
     * 上次密码修改时间
     */
    @TableField("PSWD_UPT_TIME")
    private LocalDateTime PSWD_UPT_TIME;

    /**
     * 密码失效时间
     */
    @TableField("PSWD_TIME")
    private LocalDateTime PSWD_TIME;

    /**
     * 公司结构编码
     */
    @TableField("CORPORATION_ID")
    private Long CORPORATION_ID;

    /**
     * 部门结构编码
     */
    @TableField("DEPARTMENT_ID")
    private Long DEPARTMENT_ID;

    /**
     * 员工结构编码
     */
    @TableField("EMPLOYEE_ID")
    private Long EMPLOYEE_ID;

    /**
     * 电子邮件
     */
    @TableField("E_MAIL")
    private String E_MAIL;

    /**
     * 微信
     */
    @TableField("WECHAT")
    private String WECHAT;

    /**
     * 电话
     */
    @TableField("TELEPHONE")
    private String TELEPHONE;


    /**
     * 移动电话
     */
    @TableField("MOBILE")
    private String MOBILE;

    /**
     * 权限组织结构编码
     */
    @TableField("PERMISSION_STRU_ID")
    private Long PERMISSION_STRU_ID;

    /**
     * 用户排序序号
     */
    @TableField("USER_ORDER")
    private int USER_ORDER;

    /**
     * 行政区代码
     */
    @TableField("PROVINCE_CODE")
    private String PROVINCE_CODE;

    /**
     * 用户登录账号
     */
    @TableField("USER_ACCOUNT")
    private String USER_ACCOUNT;

    /**
     * 类型属性 0 临时账号 1长期账号
     */
    @TableField("TYPE_PROPERTY")
    private String TYPE_PROPERTY;

    /**
     * 开始时间
     */
    @TableField("START_TIME")
    private LocalDateTime START_TIME;

    /**
     * 最后登录时间
     */
    @TableField("LAST_LOGIN_TIME")
    private LocalDateTime LAST_LOGIN_TIME;

    /**
     * 允许登录时间
     */
    @TableField("ACCESS_LOGIN_START_TIME")
    private LocalDateTime ACCESS_LOGIN_START_TIME;

    /**
     * 允许登录时间
     */
    @TableField("ACCESS_LOGIN_END_TIME")
    private LocalDateTime ACCESS_LOGIN_END_TIME;

    /**
     * 身份验证
     */
    @TableField("TOTP_KEY")
    private String TOTP_KEY;


    /**
     * 是否开启登录时间验证，1 开启 0不开启
     */
    @TableField("LOGIN_TIME_LIMIT")
    private String LOGIN_TIME_LIMIT;

    /**
     * 是否开启登录IP验证，1 开启 0不开启
     */
    @TableField("LOGIN_IP_LIMIT")
    private String LOGIN_IP_LIMIT;


    /**
     * 数据权限类型
     */
    @TableField("DATA_SCOPE_TYPE")
    private String DATA_SCOPE_TYPE;

    /**
     * 创建者
     */
    @TableField("CREATOR")
    private Long CREATOR;

    /**
     * 创建时间
     */
    @TableField("CREATE_TIME")
    private LocalDateTime CREATE_TIME;

    /**
     * 上次编辑者
     */
    @TableField("LAST_EDITOR")
    private Long LAST_EDITOR;

    /**
     * 上次编辑时间
     */
    @TableField("LAST_TIME")
    private LocalDateTime LAST_TIME;

}
